package com.ibeacon.service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.ibeacon.model.BeaconInfo;
import com.ibeacon.model.BeaconsInfo;

import net.sf.json.JSONObject;

public interface IbeaconDeviceService {
	
	/**
	 * 根据接口查
	 * @return
	 */
	public  List<BeaconInfo>  queryDevice();
	
	/**
	 * 根据ticket获取BeaconInfo
	 * @param paraMap ticket：url后面的设备唯一标识
	 * @return
	 */
	public List<BeaconInfo> getIbeaconDevice(HashMap<String, Object> paraMap);
	
	/**
	 * 解析url返回的数据包 ，得到BeaconInfo的列表
	 * @param xmlsb xml包
	 * @return
	 */
	public  BeaconsInfo getIbeaconDevices(String xmlsb);

	/**
	 * 添加分组
	 * @param groupName 分组名称
	 * @return
	 */
	public JSONObject addIbeaconGroup(String groupName);
	
	/**
	 * 查询分组
	 * @return
	 */
	public JSONObject queryIbeaconGroup();
	
	/**
	 * 删除分组
	 * @param groupId 分组Id
	 * @return
	 */
	public JSONObject deleteIbeaconGroup(String groupId);
	
	/**
	 * 批量删除分组
	 * @param groupIds
	 * @return
	 */
	public String deleteIbeaconGroups(String groupIds);
	
	/**
	 * 编辑分组
	 * @param groupId 分组id
	 * @param groupName 分组名称
	 * @return
	 */
	public JSONObject editGroupDetil(String groupId,String groupName);
	
	/**
	 * 查询分组详细
	 * @param groupId 分组Id
	 * @return
	 */
	public JSONObject queryGroupDetil(String groupId);
	
	/**
	 * 向分组中添加设备
	 * @param pramMap  
	 * @return
	 */
	public JSONObject addDeviceToGroup(HashMap<String, String>  pramMap );
	
	/**
	 * 从分组中移除设备
	 * @param pramMap
	 * @return
	 */
	
	public JSONObject deleteDeviceFromGroup(HashMap<String, String>  pramMap );
	
	/**
	 * 获取前台调用sdk的权限的签名
	 * @param jsapi_ticket 
	 * @param url 调用接口的url
	 * @return
	 */
	public Map<String, String> getSign(String jsapi_ticket, String url);
}
